//导入验证规则的包
const joi=require("@hapi/joi")

//定义用户名密码验证规则
const username=joi.string().alphanum().min(3).max(10).required().messages({
    "string.required": `用户名不能为空！`,
    "string.empty": `用户名不能为空格！`,
    "string.base":"用户名不能为空！",
    "string.min": `用户名不能小于{#limit}位！`,
    "string.max": `用户名不能超过{#limit}位！`,
    "string.required": `用户名不能为空！`
})
const password=joi.string().pattern(/^[\S]{6,12}$/).required().messages({
    "any.required": `密码不能为空！`,
    "string.pattern.base":"请保证密码在6到12位之间的非空字符！"

})
const email=joi.string().email().required().messages({
    "any.required": `邮箱不能为空！`,
    "string.email":"请保证正确邮箱格式！"
})
const id=joi.number().integer().min(1).required().messages({
    "number.required": `id值不能为空！`,
    "number.min": `id不能小于{#limit}位！`,
    "string.pattern.base":"请保证正确邮箱格式！"
})
const avatar = joi.string().dataUri().required().messages({
    "any.required": `不能上传空头像！`,
    "string.dataUri":"头像必须是base64格式"
})
//注册功能验证对象
exports.regSchema={
    fields:{
        email,
        username,
        password,
        
    }
}
//登录功能验证对象
exports.logSchema={
    fields:{
        username,
        password,
    }
    
}
//更改用户信息功能验证对象
exports.infoSchema={
    body:{
        // id,
        username,
        email
    }
}
//更改密码功能验证对象
exports.updatePwdSchema={
    body:{
        oldPwd:password,
        newPwd:joi.not(joi.ref('oldPwd')).concat(password).messages({
            "any.invalid":"旧密码不应该与新密码相同！"
        })
    }
}
//更换头像功能验证对象
exports.updateAvatarSchema={
    body:{
        avatar
    }
}